Tree data structures are widely used to represent hierarchical relationships. A typical tree includes a plurality of nodes, each of which may represent a value or condition. Each node in a tree has zero or more child nodes and, at most, one parent node. Sibling nodes are nodes that share the same parent node. The topmost node in a tree is called the root node, and, as the node with the highest hierarchical level, is often the node on the tree at which operations begin. All other nodes on the tree can be reached by following a path from the root node. The depth of a particular node on the tree is the length of the path to that node from the root node, and typically nodes having the same depth are of the same hierarchical level. Consequently, it is possible to use a tree data structure to represent a hierarchical pattern, structure, configuration or the like.